
package com.be.beadmin.product.service;

import com.be.beadmin.basicData.entity.User;
import com.be.beadmin.common.entity.PageEntity;
import com.be.beadmin.product.dto.input.ErrorReportByWoPage;
import com.be.beadmin.product.dto.input.ErrorReportDto;
import com.be.beadmin.product.dto.input.ErrorReportSimpDto;
import com.be.beadmin.product.dto.output.ErrorPriorityEx;
import com.be.beadmin.product.dto.output.ErrorReportEx;
import com.be.beadmin.product.dto.output.ErrorReportForExportEx;
import com.be.beadmin.product.dto.output.ErrorTypeEx;
import org.springframework.data.domain.Page;
import org.springframework.web.multipart.MultipartFile;

import java.util.ArrayList;
import java.util.Date;
import java.util.List;

/**
* @description 服务接口
* @author ljh
* @date 2023-04-21
**/
public interface ErrorReportService {

    /**
    * 分页的查询接口
    * @param pageEntity
    * @return
    */
    Page<ErrorReportEx> getErrorReportByPage(PageEntity pageEntity);

    /**
    * @param errorReportSimpDto
    */
    void addErrorReport(ErrorReportSimpDto errorReportSimpDto);

    /**
    * @param errorReportDto
    */
    void updateErrorReport(ErrorReportDto errorReportDto);

    /**
    * @param id
    */
    void delErrorReport(String id);

    /**
    * 删除多个角色
    * @param ids
    */
    void delErrorReports (List<String> ids);

    /**
     * @param errorReportDto
     */
    void deliverErrorReport(ErrorReportDto errorReportDto);

    /**
     * 分页的查询接口
     * @param errorReportByWoPage
     * @return
     */
    Page<ErrorReportEx> getErrorReportByPageAndWo( ErrorReportByWoPage errorReportByWoPage);

    List<ErrorPriorityEx> getAllErrorPriority();

    List<ErrorTypeEx> getAllErrorType();

    void addErrorReport2(String workOrderInforId, String wo, String taskId, String errorType, String priority, String handlingMan, Date deadLine, String errorDes, String operator, MultipartFile[] multipartFiles, String bucketName,String projectName,Float workHour) throws Exception;

    /**
     * 获取异常处理
     * @return
     */
    ArrayList<Integer> getErrorReportProgress();

    List<User> getErrorReportMembers();

    String getErrorPreviewUrl(ErrorReportDto errorReportDto) throws Exception;

    List<ErrorReportForExportEx> exportErrorReportByHandleStatus(Integer handleStatus);

    List<ErrorReportForExportEx> exportAllErrorReport();

    void finishErrorReport(String id);
}